Fric-frac HomeController
Home

Fric-frac HomeController

Fric-frac HomeController

De HomeController staat aan de top van de hiërachie. De controller wordt gebruikt om de Index pagina van de website te laden evenals de Index pagina's van de hoofdsecties van de Website. De webwinkel heeft voorlopig twee hoofdsecties, de online webwinkel zelf en het administratie gedeelte.
De afspraak is dat de naam van de controllerklasse bestaat uit de entiteitsnaam gevolgd door Controller zoals in HomeController. Voor het Fric-frac project gaan we bijvoorbeeld ook een AdminController maken. En een PersonController, enz.

Routing

In het bestand Startup.cs staat de Startup klasse. In de constructor daarvan wordt de standaard route opgegeven. Dat wil zeggen als er geen route is opgegeven volgt ASP.NET MVC de standaard route, namelijk Home/Index:

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;

namespace Fric_frac
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();
            services.AddSingleton<PostcodeApp.Dal.IPostcode>
                (p => new PostcodeApp.Dal.PostcodeXml(new PostcodeApp.Bll.Postcode()));
            services.AddTransient(p => new Controllers.PostcodeController(new PostcodeApp.Dal.PostcodeXml()));
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                app.UseBrowserLink();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }

            app.UseStaticFiles();

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });
        }
    }
}

De HomeController klasse

De klasse maken

Deze controllerklasse is door Visual Studio aangemaakt. We moeten die alleen maar aanpassen aan de vereisten van het Fric-frac project.

De methoden wijzigen

We wijzigen voorlopig alleen de volgende methode:

In deze methoden creëren we een eigenschap in het ViewBag object met de naam Title. Die eigenschap gebruiken we later in de View om het head > title element in te vullen. Dat element staat in de Master Page en verandert dus bij elke pagina. We kunnen dat niet letterlijk in de Master Page intypen dus doen we dat in de controller.

De View, die we retourneren, heeft dezelfde naam als de actiemethode. We hoeven de naam van de View dus niet expliciet te bepalen. Hiermee volgen we het conventie boven configuratie principe van ASP.NET MVC:

using System.Diagnostics;
using Microsoft.AspNetCore.Mvc;
using Fric_frac.Models;

namespace Fric_frac.Controllers
{
    public class HomeController : Controller
    {
        public IActionResult Index()
        {
            // Wordt gebruikt in het head->title element
            // van de Master Page
            ViewBag.Title = "Home";
            return View();
        }

        public IActionResult About()
        {
            ViewData["Message"] = "Your application description page.";

            return View();
        }

        public IActionResult Contact()
        {
            ViewData["Message"] = "Your contact page.";

            return View();
        }

        public IActionResult AboutMe()
        {
            ViewData["Message"] = "Korte biografie";

            return View();
        }

        public IActionResult Error()
        {
            return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
        }
    }
}

JI
2018-01-04 10:54:15